chdir関数は、現在の作業ディレクトリ(カレントディレクトリ)を変更します。
この関数は、C言語のライブラリ関数(標準関数)ではありませんので、コンパイラにより、使えない場合があります。
#include <unistd.h>
int chdir(const char *path);
*pathは変更するディレクトリのパス名を指定します。
戻り値として、処理が成功した場合は0を、失敗した場合は-1を返します。
プログラム 例
#include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { int return_code = 0; if (argc == 2) { if (chdir(*(argv+1)) == 0) { printf('カレントディレクトリの変更に成功しました\n'); } else { printf('カレントディレクトリの変更に失敗しました\n'); perror(''); return_code = 1; } } else { printf('実行時引数の数が不当です\n'); return_code = 2; } return return_code; }
例の実行結果
$ ls -ld DIR1 DIR2 ls: cannot access DIR1: そのようなファイルやディレクトリはありません drwxr-xr-x 2 user users 4096 2008-07-04 16:27 DIR2 $ $ ./chdir.exe DIR2 カレントディレクトリの変更に成功しました $ $ ./chdir.exe DIR1 カレントディレクトリの変更に失敗しました No such file or directory $ $ ./chdir.exe /root カレントディレクトリの変更に失敗しました Permission denied $